/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package interfaces;
import entidades.Funcionario;
import erros.ErroCadastramento;
import erros.ErroRecuperacao;
/**
 * Interface que provê os serviços prestados pela controladora
 * de negócio da entidade Funcionário.
 * @author thiagostuckert
 * @author daniel
 */
public interface IGerenciaFuncionario {

    /**
     * Cadastra um novo funcionário no banco de dados.
     * @param funcionario Funcionário a ser cadastrado.
     * @throws ErroCadastramento Joga a exceção de erro de cadastramento.
     */
    void cadastrarFuncionario(Funcionario funcionario)
            throws ErroCadastramento;

    /**
     * Recupera um funcionário no banco de dados.
     * @param funcionario Funcionário a ser recuperado.
     * @return Retorna o funcionário recuperado do banco.
     * @throws ErroRecuperacao Joga a exceção de erro de recuperação.
     */
    public Funcionario recuperarFuncionario(Funcionario funcionario)
            throws ErroRecuperacao;
}
